package com.ruoyi.project.shortUrl.url.service;

import java.util.List;

import com.ruoyi.project.shortUrl.url.domain.ShortUrl;
import com.ruoyi.project.system.user.domain.User;

/**
 * 短链接Service接口
 * 
 * @author ruoyi
 * @date 2020-03-29
 */
public interface IShortUrlService 
{
    /**
     * 查询短链接
     * 
     * @param shortCode 短链接ID
     * @return 短链接
     */
    public ShortUrl selectShortUrlById(String shortCode);

    /**
     * 查询短链接列表
     * 
     * @param shortUrl 短链接
     * @return 短链接集合
     */
    public List<ShortUrl> selectShortUrlList(ShortUrl shortUrl);
    
    public int countAll();

    /**
     * 修改短链接
     * 
     * @param shortUrl 短链接
     * @return 结果
     */
    public int updateShortUrl(ShortUrl shortUrl);

    /**
     * 批量删除短链接
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteShortUrlByIds(String ids);
    
    public int deleteShortUrlByIExpireDate(String yymmdd);

    /**
     * 删除短链接信息
     * 
     * @param shortCode 短链接ID
     * @return 结果
     */
    public int deleteShortUrlById(String shortCode);
    
    /**
     * 创建入口
     * @param userType
     * @param shortUrl
     * @param expireDay
     * @return
     */
    public int createShortUrl(String userType, ShortUrl shortUrl, int expireDay);

    /**
     * 修改入口，管理员才能修改超期时间
     * @param user
     * @param shortUrl
     * @param expireDay
     * @return
     */
	int editShortUrl(User loginUser, String shortCode, String targetUrl, Integer expireDay);

	String createShortUrlReturnShortUrl(String userType, ShortUrl shortUrl, int expireDay, String openWay);

	void deleteShortUrlByUserId(Long userId);
	
//	void insertRequestLog(HttpServletRequest request, ShortCodeCacheEntity cacheEntity);
}
